package org.walkframework.apps.test.business.base;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.walkframework.boot.ehdb.util.CreateBeanUtils;

import javax.sql.DataSource;
import java.io.File;

/**
 * <p>类描述</p>
 *
 * @Author mengqk
 * @Since [2019/4/3]
 * @Version 1.0
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class CreateBeans {

    @Autowired
    private DataSource baseDataSource;

    @Test
    public void createBeans() throws Exception {
        // 1. 指定生成到哪个工程，可以直接写死
        //String basePath = new File("").getAbsolutePath() + File.separatorChar + "src" + File.separatorChar + "main " + File.separatorChar + "java";  // 生成文件的路径
        String basePath = "/Users/mengqk/work/MyWork/code/sluggard/sluggard-kettle-etl/kettle/src/main/java";  // 生成文件的路径
        // 2. 指定生成到哪个类路径下
        String beanPackage = "org.sluggard.etl.kettle.core.dataobject"; // bean生成的目录
        // 3. 设置是否截取表名第一个前缀，如果前缀不只一个，使用CreateBeanUtils.setSubPrefix("slg_model_");截取
        CreateBeanUtils.setSubTableName(true);
        // CreateBeanUtils.setSubPrefix("slg_model_");
        // 4. 指定生成人用户名
        CreateBeanUtils.setUserName("weisheng");
        // 5. 指定基础类，如果表中没有APP_ID/TENANT_ID字段的话，可以去掉此配置或换为其他基础类
        // CreateBeanUtils.setBaseBean(BaseAppModel.class);
        // 6. 初始化基础信息
        CreateBeanUtils.setup(baseDataSource, basePath, beanPackage, null);
        // 7. 执行生成动作
        CreateBeanUtils.createBeans(false, "dmp_kettle_repository");
    }

}
